//
// Created by wkm on 2024-04-23.
//

#ifndef AES128CHIPSYSTEMC_MIXCOLUMNS_DRIVER_H
#define AES128CHIPSYSTEMC_MIXCOLUMNS_DRIVER_H

#include "systemc.h"

#define DATA_SIZE 8

SC_MODULE(mixcolumns_driver) {
    sc_in<bool> d_clk;
    sc_out<bool> d_start, d_reset;
    sc_out<sc_uint<DATA_SIZE>> d_input_data_1, d_input_data_2, d_input_data_3, d_input_data_4,
            d_input_data_5, d_input_data_6, d_input_data_7, d_input_data_8,
            d_input_data_9, d_input_data_10, d_input_data_11, d_input_data_12,
            d_input_data_13, d_input_data_14, d_input_data_15, d_input_data_16;

    void prc_mixcolumns_driver();

    SC_CTOR(mixcolumns_driver) {
        SC_THREAD(prc_mixcolumns_driver);
        sensitive << d_clk.pos();
    }
};

#endif //AES128CHIPSYSTEMC_MIXCOLUMNS_DRIVER_H
